これらは、C1Zip ライブラリで最も高いレベルのクラスです。このレベルのクラスを使用して、zip ファイルを作成および管理することができます。zip ファイルを使用してアプリケーションデータを保存することには、次の利点があります。
C1ZipFile クラスは、zip ファイルをカプセル化します。C1ZipFile オブジェクトを作成したら、そのオブジェクトを既存の zip ファイルにアタッチしたり、そのオブジェクトに基づいて空の zip ファイルを新しく作成することができます。
次のコードは、sources.zip という名前の zip ファイルを作成し、"cs" という拡張子を持つすべてのファイルをその zip ファイルに追加します。
C# |
コードのコピー
|
---|---|
// 圧縮するファイルが格納されているフォルダを選択します。 var folderPicker = new FolderPicker(); folderPicker.FileTypeFilter.Add("*"); var folder = await folderPicker.PickSingleFolderAsync(); // zip ファイルの保存先を指定します。 var saveFile = new FileSavePicker(); saveFile.SuggestedFileName = "source"; saveFile.FileTypeChoices.Add("zip ファイル", new string[] { ".zip" }); saveFile.DefaultFileExtension = ".zip"; var fileStorage = await saveFile.PickSaveFileAsync(); var writeStream = await fileStorage.OpenStreamForWriteAsync(); // zip ファイルを作成します。 var zip = new C1.C1Zip.C1ZipFile(); zip.Create(writeStream); // cs 拡張子を持つすべてのファイルを zip ファイルに追加します。 foreach (var file in await folder.GetFilesAsync()) { if (Path.GetExtension(file.Name).Equals(".cs", StringComparison.OrdinalIgnoreCase)) { var fileStream = await file.OpenStreamForReadAsync(); zip.Entries.Add(fileStream, file.Name, file.DateCreated.DateTime); } } // 結果を表示します。 foreach (var ze in zip.Entries) Debug.WriteLine("{0} {1:#,##0} {2:#,##0}", ze.FileName, ze.SizeUncompressed, ze.SizeCompressed); |
zip ファイルを作成または開いた後、Entries コレクションを使用して、zip ファイルの内容を調べたり、エントリの追加、展開、および削除を行います。次に例を示します。
Visual Basic |
コードのコピー
|
---|---|
myZip.Entries.Add(stream1, "MyData.txt") myZip.Entries.Add(stream2, "MyData.xml") Dim zipEntry As C1ZipEntry For Each zipEntry In myZip.Entries Console.WriteLine(zipEntry.FileName) Next zipEntry |
C# |
コードのコピー
|
---|---|
myZip.Entries.Add(stream1, "MyData.txt"); myZip.Entries.Add(stream2, "MyData.doc"); foreach (C1ZipEntry zipEntry in myZip.Entries) Debug.WriteLine(zipEntry.FileName); |
C1ZipEntry クラスは、各エントリについて説明するプロパティとメソッドを公開します。たとえば、エントリの元のファイル名、サイズ、圧縮サイズなどです。また、このクラスには、ストリームオブジェクトを返す OpenReader メソッドが含まれているため、エントリを展開しなくても内容を読み取ることができます。